# Copyright (c) 2025 Huawei Technologies Co., Ltd.
# openUBMC is licensed under Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
#         http://license.coscl.org.cn/MulanPSL2
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.

"""编译器分析模块

提供编译器所需的各种静态分析：
- 数据流分析 (dataflow)
- 异步数据流分析 (async_dataflow)
- 控制流分析 (预留)
- 依赖分析 (预留)
"""

from mcpy.analysis.dataflow import (
    DataFlowInfo,
    Definition,
    Use,
    UseType,
    EscapeInfo,
    ClosureVariableUsage,
)

from mcpy.analysis.async_dataflow import (
    Segment,
    Unit,
    VariablePromotionInfo,
    AsyncDataFlowInfo,
    AsyncDataFlowAnalyzer,
)

__all__ = [
    "DataFlowInfo",
    "Definition",
    "Use",
    "UseType",
    "EscapeInfo",
    "ClosureVariableUsage",
    "Segment",
    "Unit",
    "VariablePromotionInfo",
    "AsyncDataFlowInfo",
    "AsyncDataFlowAnalyzer",
]
